package xcache

// 缓存清空
func Clear() {
	// 获取全部下标信息
	name := groupAll()
	for i := 0; i < len(name); i++ {
		_default.Set(name[i], "", _default_cache_time)
	}
	groupClearAll()
}

// 删除单个缓存
//
//	name	待删除的缓存值
func Remove(name string) {
	_default.Set(name, "", _default_cache_time)
	// 移除group分组中的name信息
	_default_cache_sync.Lock()
	defer _default_cache_sync.Unlock()
	for i, v := range group {
		for k := 0; k < len(v); k++ {
			if v[k] == name {
				group[i] = append(group[i][:k], group[i][k:]...)
			}
		}
	}
}

// 删除某分组的缓存信息
//
//	name	待删除的缓存组名称
func ClearGroup(name string) {
	g := groupGet(name)
	for i := 0; i < len(g); i++ {
		_default.Set(g[i], "", _default_cache_time)
	}
	groupRemove(name)
}
